package com.eascs.workflow.common.entity.wf;

import java.io.Serializable;
import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;

/**
 * 流程模板
 */
@Entity
@Table(name = "wf_template")
public class ProcessTemplate implements Serializable {
	private static final long serialVersionUID = 1L;
	/** 流程类型 */
	// 征信调查--终端贷
	public static final String PROECESS_TYPE_CREDIT = "CREDIT";
	// 内部审批--终端贷
	public static final String PROECESS_TYPE_INAUDIT = "INAUDIT";
	// 保证金管理费--终端贷
	public static final String PROECESS_TYPE_DEPOSIT = "DEPOSIT";
	// 面签提报 --终端贷
	public static final String PROECESS_TYPE_BANK_REPORT = "BANK_REPORT";
	// 特殊面签提报
	public static final String PROECESS_TYPE_SPEC_BANK_REPORT = "SPEC_BANK_REPORT";
	// 退保证金管理费 -- 终端贷
	public static final String PROECESS_TYPE_REFUND_MGR_FEE = "REFUND_MGR_FEE";
	// 申请退还保证金和风险补偿金
	public static final String PROECESS_TYPE_REFUND_DEPOSIT_RISK = "REFUND_DEPOSIT_RISK";
	// 启动归档流程-- 终端贷
	public static final String PROECESS_TYPE_PLACE_ON_FILE = "PLACE_ON_FILE";
	// 付费流程-- 终端贷
	public static final String PROECESS_TYPE_PAY = "PAY";
	// 国安村镇银行代偿付款流程优化
	public static final String PROECESS_TYPE_PAY_GACZ = "PAY_GACZ";
	// 回款流程
	public static final String PROECESS_TYPE_BACK_MONEY = "BACK_MONEY";
	// 档案归档流程-- 终端贷
	public static final String PROECESS_TYPE_ARCHIVE = "ARCHIVE";
	// 征信归档
	public static final String PROECESS_TYPE_CREDIT_ARCHIVE = "CREDIT_ARCHIVE";
	// 借阅档案归档流程-- 终端贷
	public static final String PROECESS_TYPE_BORROW_ARCHIVE = "JY_ARCHIVE";
	// 补充档案归档流程-- 终端贷
	public static final String PROECESS_TYPE_BC_ARCHIVE = "BC_ARCHIVE";
	// 征信调查--分期贷
	public static final String PROECESS_TYPE_CREDI_FQ = "CREDIT_FQ";
	// 内部审批--分期贷
	public static final String PROECESS_TYPE_INAUDIT_FQ = "INAUDIT_FQ";
	// 保证金管理费--分期贷
	public static final String PROECESS_TYPE_DEPOSIT_FQ = "DEPOSIT_FQ";
	// 面签提报 --分期贷
	public static final String PROECESS_TYPE_BANK_REPORT_FQ = "BANK_REPORT_FQ";
	// 退保证金管理费 -- 分期贷
	public static final String PROECESS_TYPE_REFUND_MGR_FEE_FQ = "REFUND_MGR_FEE_FQ";
	// 付费流程-- 分期贷
	public static final String PROECESS_TYPE_PAY_FQ = "PAY_FQ";
	// 启动归档流程-- 分期贷
	public static final String PROECESS_TYPE_PLACE_ON_FILE_FQ = "PLACE_ON_FILE_FQ";
	// 征信调查--品牌贷
	public static final String PROECESS_TYPE_CREDI_BP = "CREDIT_BP";
	// 内部审批--品牌贷
	public static final String PROECESS_TYPE_INAUDIT_BP = "INAUDIT_BP";
	public static final String PROECESS_TYPE_FINANCE_AUDIT = "FINANCE_AUDIT";
	// 工单系统--系统需求申请
	public static final String PROECESS_TYPE_REQUIREMENT_APP = "REQUIREMENT_APP";
	// 工单系统--业务需求申请
	public static final String PROECESS_TYPE_BUS_REQUIREMENT_APP = "BUS_REQUIREMENT_APP";
	// 工单系统--总部需求申请
	public static final String PROECESS_TYPE_HQ_REQUIREMENT_APP = "HQ_REQUIREMENT_APP";
	// 品牌贷款，合作方审核
	public static final String PROECESS_TYPE_PARTNERS_AUDIT_BP = "PARTNERS_AUDIT_BP";
	// 品牌贷款，经销商合作方审核
	public static final String PROECESS_TYPE_JXS_PARTNERS_AUDIT_BP = "JXS_PARTNERS_AUDIT_BP";
	// 提前还款
	public static final String PROECESS_TYPE_TQ_PAYMENT = "TQ_PAYMENT";
	// 品牌贷款，品牌审核
	public static final String PROECESS_TYPE_AUDIT_BP = "AUDIT_BP";
	// 定期贷后检查
	public static final String PROECESS_TYPE_REGULAR_CHECK_LOAN_AFTER = "CHECK_LOAN_AFTER";
	// 代偿反馈
	public static final String PROECESS_TYPE_DC_FED_BACK = "DC_FED_BACK";
	// 代偿结清
	public static final String PROECESS_TYPE_DCJQ = "DCJQ";
	// 系统开发
	public static final String PROECESS_TYPE_SYSTEM_DEV = "SYSTEM_DEV";
	//付款转账流程
	public static final String PROECESS_TYPE_FKZZ = "FKZZ";
	//代还款确认流程
	public static final String PROECESS_TYPE_DHK = "DHK";
	// 案件报送流程
	public static final String CASE_SUBMIT = "CASE_SUBMIT";
	//准入流程通知
	public static final String PROCESS_ACCESS = "PROCESS_ACCESS";
	// 工单系统--总部需求申请 业务需求
	public static final String PROECESS_TYPE_XQKF = "XQKF";
	// 工单系统--总部需求申请 需求申请TEST
	public static final String PROECESS_TYPE_XXXTEST = "XXXTEST";
	// 工单系统--总部需求申请 导出数据
	public static final String PROECESS_TYPE_EXDATA = "EXDATA";

	/** 系统模块： */
	public static final String SYSTEM_MODULE_O2O = "O2O";
	/** 发布状态：0-未发布 1-已发布 */
	public static final String PUBLISH_STATUS_NO = "N";
	public static final String PUBLISH_STATUS_YES = "Y";

	/** 流程流水号 */
	@Column(name = "process_no")
	@Id
	private String processNo;

	/** 流程名称 */
	@Column(name = "process_name")
	private String processName;

	/** 流程类型 (征信，内审......) */
	@Column(name = "process_type")
	private String processType;

	/** 流程描述 */
	@Column(name = "process_des")
	private String processDes;

	/** 系统模块 */
	@Column(name = "system_module")
	private String systemModule;

	/** 发布状态 */
	@Column(name = "publish_status")
	private String publishStatus;

	/** 顺序编号 */
	@Column(name = "order_no")
	private Integer orderNo;

	/** 流程版本 */
	@Column(name = "process_version")
	private String processVersion;

	/** 流程版本 */
	@Column(name = "is_default")
	private int isDefault;

	/** 创建人 */
	private String creator;

	/** 创建时间 */
	@Column(name = "create_time")
	private Date createTime;

	/** 修改人 */
	private String updator;

	/** 修改时间 */
	@Column(name = "update_time")
	private Date updateTime;

	/** 节点时效 */
	@Column(name = "time_effective")
	private Integer timeEffective;
	
	@Column(name = "is_del")
	private Integer isDel;
	
	/** 种类*/
	@Column(name = "catagory")
	private String catagory;
	
	/**流程单号前缀*/
	@Column(name = "process_prefix")
	private String processPrefix;

	public String getProcessNo() {
		return processNo;
	}

	public void setProcessNo(String processNo) {
		this.processNo = processNo;
	}

	public String getProcessName() {
		return processName;
	}

	public void setProcessName(String processName) {
		this.processName = processName;
	}

	public String getProcessType() {
		return processType;
	}

	public void setProcessType(String processType) {
		this.processType = processType;
	}

	public String getProcessDes() {
		return processDes;
	}

	public void setProcessDes(String processDes) {
		this.processDes = processDes;
	}

	public String getSystemModule() {
		return systemModule;
	}

	public void setSystemModule(String systemModule) {
		this.systemModule = systemModule;
	}

	public String getPublishStatus() {
		return publishStatus;
	}

	public void setPublishStatus(String publishStatus) {
		this.publishStatus = publishStatus;
	}

	public Integer getOrderNo() {
		return orderNo;
	}

	public void setOrderNo(Integer orderNo) {
		this.orderNo = orderNo;
	}

	public String getProcessVersion() {
		return processVersion;
	}

	public void setProcessVersion(String processVersion) {
		this.processVersion = processVersion;
	}

	public String getCreator() {
		return creator;
	}

	public void setCreator(String creator) {
		this.creator = creator;
	}

	public String getUpdator() {
		return updator;
	}

	public void setUpdator(String updator) {
		this.updator = updator;
	}

	public Date getCreateTime() {
		return createTime;
	}

	public void setCreateTime(Date createTime) {
		this.createTime = createTime;
	}

	public Date getUpdateTime() {
		return updateTime;
	}

	public void setUpdateTime(Date updateTime) {
		this.updateTime = updateTime;
	}

	public Integer getTimeEffective() {
		return timeEffective;
	}

	public void setTimeEffective(Integer timeEffective) {
		this.timeEffective = timeEffective;
	}

	public Integer getIsDel() {
		return isDel;
	}

	public void setIsDel(Integer isDel) {
		this.isDel = isDel;
	}

	public String getCatagory() {
		return catagory;
	}

	public void setCatagory(String catagory) {
		this.catagory = catagory;
	}

	public String getProcessPrefix() {
		return processPrefix;
	}

	public void setProcessPrefix(String processPrefix) {
		this.processPrefix = processPrefix;
	}
}
